1. A Tour of Computer Systems

aliases
No value
tags
No value
description
문맥에 따른 비트해석, 컴파일의 단계, 프로세서 해부학, 운영체제와 가상 메모리, 메모리 계층구조에 대해 공부한다.
title
1. A Tour of Computer Systems
created
2023-08-30T17:42:17
updated
2023-08-30T17:46:02

1.1 Information is bits + context

The only thing that distinguishes different data objects is the context in which we view them.

서로 다른 데이터임을 구별할 수 있는 유일한 방법은 그것을 바라보는 문맥 뿐이다.

1.2 Programs are translated by other programs into different forms

추가

1.3 It pays to understand how compilation system work

컴파일이 진행되는 방법을 알면 코드를 최적화 시킬 수 있고, 보안취약점으로부터 안전한 코드를 작성할 수 있으며, 링크 타임 에러를 해결할 수 있게 된다.

1.4 Processors read and interpret instructions stored in memory

셸의 역할: 사용자의 명령을 입력으로 받아 다양한 일을 수행하는 프로그램. 실행 가능한 프로그램을 실행시켜 새 프로세스로 만들어주는 역할을 담당한다.

시스템을 구성하는 하드웨어 컴포넌트

Thus, we can distinguish the processor's instruction set architecture, describing the effect of each machine-code instruction, FROM its microarchitecture, describing how the processor is actually implemented.
따라서, 우리는 프로세서의 설계도인 마이크로아키텍쳐와 각각의 기계어가 의미하는 바를 설명하는 명령어 셋 아키텍처 간의 차이를 구별할 수 있습니다.

DMA
Directed Memory Access라고, 우리가 영속저장장치에 저장된 실행 가능한 파일을 실행시킬 때 CPU를 거치지 않고 바로 메모리에 직빵으로 올려버리는 방법이 있다. 그것은 Direct Memory Access Controller라고 불리우는 별도의 칩이 있기에 가능하다.

1.5 Caches matter

저장장치는 크기가 클수록 느리고, 멀수록 느리다. CPU가 데이터를 처리하는 속도의 증가량보다 메모리가 데이터를 처리하는 속도의 증가량이 느리기 때문에 이 차이는 시대가 지날수록 커진다. 따라서 메인 메모리와 CPU 사이에 캐시를 다단계로 갖추어 중요하고 자주 접근할 데이터들을 빠르게 접근할 수 있도록 만들었다.

localities

1.6 Storage devices form a hierarchy

register > L1 cache > L2 cache > L3 cache > main memory > disk storage > network

1.7 The operating system manages the hardware

프로그램이 실행될 때 우리는 하드웨어를 독점적으로 사용하고 있다는 착각을 하게 만든다. 그 기저엔 운영체제가 깔려있고, 운영체제는 레이어로 구현되어있다. 하드웨어를 다루는 작업 (printf, scanf 등등)을 수행할 때에도 하드웨어를 컨트롤 하는 레이어의 인터페이스를 사용하는 수밖에 없다. 레이어 간의 추상화 덕분에 보안상의 이점도 가져가고, 인지부하도 줄일 수 있게 되었다.

다양한 추상화들

프로세스
syscall은 커널 코드와 유저 코드를 분리하는 인터페이스이다

스레드
하나의 프로세스 안에서도 여러개의 실행흐름이 존재할 수 있다.

가상 메모리

Files

유닉스 시스템에서 모든 것은 파일이다. IO기기나 네트워크도 파일이라는거.

1.8 Systems communicate with other systems using networks

WWW, FTP, SSH 등 다양한 애플리케이션들이 네트워크 어댑터를 사용하여 통신한다.

1.9 Important themes

Tnew=(1α)Told + αToldk=Told((1α)+αk)